<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>libnoise: Documentation</title>
  <link rel='stylesheet' type='text/css' href='doxygen.css'>
  <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
 </head>
 <body>
  <table class='layout'>
   <tr>
    <td class='sidebar' rowspan='2'>
     <p>
      Navigation menu
     </p>
     <ul class='toc'>
      <li>
       <a href='http://libnoise.sourceforge.net/index.html'>Main</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>
        </li>
       </ul>
      </li>
      <li>
       <strong>Docs</strong>
      </li>
      <li>
       <a href='tutorials/index.html'>Tutorials</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>
        </li>
       </ul>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>
      </li>
     </ul>
    </td>
    <td class='header'>
     <p>
      <img src='libnoise.png' alt='libnoise logo'>
     </p>   
     <p>
      A portable, open-source, coherent noise-generating library for C++
     </p>
     <hr>
    </td>
   </tr>
   <tr>
    <td class='content'>

<!-- start rich gooey content -->
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>noise::model::Line Class Reference<br>
<small>
[<a class="el" href="group__models.html">Models</a>]</small>
</h1><code>#include &lt;<a class="el" href="line_8h-source.html">line.h</a>&gt;</code>
<p>
<a href="classnoise_1_1model_1_1Line-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Model that defines the displacement of a line segment. 
<p>
This model returns an output value from a noise module given the one-dimensional coordinate of an input value located on a line segment, which can be used as displacements.<p>
This class is useful for creating:<ul>
<li>roads and rivers</li><li>disaffected college students</li></ul>
<p>
To generate an output value, pass an input value between 0.0 and 1.0 to the <a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue()</a> method. 0.0 represents the start position of the line segment and 1.0 represents the end position of the line segment. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Line::Line"></a>
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a0">Line</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a1">Line</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &amp;module)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a2">GetAttenuate</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value.  <a href="#a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a3">GetModule</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the noise module that is used to generate the output values.  <a href="#a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue</a> (double p) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment.  <a href="#a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a5">SetAttenuate</a> (bool att)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached.  <a href="#a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a6">SetEndPoint</a> (double x, double y, double z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along.  <a href="#a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &amp;module)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the noise module that is used to generate the output values.  <a href="#a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a8">SetStartPoint</a> (double x, double y, double z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along.  <a href="#a8"></a><br></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a1" doxytag="noise::model::Line::Line"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">Line::Line           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>module</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>The noise module that is used to generate the output values. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a2" doxytag="noise::model::Line::GetAttenuate"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">bool noise::model::Line::GetAttenuate           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><ul>
<li><em>true</em> if the value is to be attenuated</li><li><em>false</em> if not. </li></ul>
</dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a3" doxytag="noise::model::Line::GetModule"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>&amp; noise::model::Line::GetModule           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the noise module that is used to generate the output values. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl>
<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a4" doxytag="noise::model::Line::GetValue"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double Line::GetValue           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>p</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The distance along the line segment (ranges from 0.0 to 1.0)</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl>
<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. <p>
The start and end points of the line segment were specified.</dd></dl>
The output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. This value may be attenuated (moved toward 0.0) as <em>p</em> approaches either end of the line segment; this is the default behavior.<p>
If the value is not to be attenuated, <em>p</em> can safely range outside the 0.0 to 1.0 range; the output value will be extrapolated along the line that this segment is part of.     </td>
  </tr>
</table>
<a class="anchor" name="a5" doxytag="noise::model::Line::SetAttenuate"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::model::Line::SetAttenuate           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">bool&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>att</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>att</em>&nbsp;</td><td>A flag that specifies whether the output value is to be attenuated. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a6" doxytag="noise::model::Line::SetEndPoint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::model::Line::SetEndPoint           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>x coordinate of the end position. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate of the end position. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>z coordinate of the end position. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a7" doxytag="noise::model::Line::SetModule"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::model::Line::SetModule           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>module</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the noise module that is used to generate the output values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>The noise module that is used to generate the output values.</td></tr>
  </table>
</dl>
This noise module must exist for the lifetime of this object, until you pass a new noise module to this method.     </td>
  </tr>
</table>
<a class="anchor" name="a8" doxytag="noise::model::Line::SetStartPoint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::model::Line::SetStartPoint           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>x coordinate of the start position. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate of the start position. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>z coordinate of the start position. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="line_8h-source.html">line.h</a><li>line.cpp</ul>
<!-- end rich gooey content -->

    </td>
   </tr>
   <tr>
    <td class='footer' colspan='2'>
     <p>
      &copy; 2003-2005 Jason Bevins
     </p>
     <p>
      <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>
      <br>
      The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1
     </p>
    </td>
   </tr>
  </table>
 </body>
</html>
